using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Collections;
using System.Data;
using System.ComponentModel;
using System.Data.OracleClient;
using WPFExcelReport.Helpers;
using WPFExcelReport.Controls;
namespace WPFExcelReport
{
    public partial class VSSJOUR
    {
        public DataRow Convert2SSJOUR(DataRow dwInput, string ITXDBVERSION, bool IsConvert = false)
        {
            DataSet SResult = new DataSet();
            SResult = QuerySSJOUR(dwInput, 0);
            DataRow dwReturn = null;
            if (SResult.Tables[0].Rows.Count > 0)
            {
                dwReturn = SResult.Tables[0].Rows[0];
            }
            else
            {
                dwReturn = SResult.Tables[0].NewRow();
            }
            switch (ITXDBVERSION)
            {
                case "YGR":
                    #region=========
         dwReturn["SSJMANDANT"] = " ".PadRight(2 ); 
         dwReturn["SSJLFDNR"] = " ".PadRight(0 ); 
         dwReturn["SSJKUNDNR"] = " ".PadRight(8 ); 
         dwReturn["SSJLIEFNR"] = " ".PadRight(8 ); 
         dwReturn["SSJTYP"] = " ".PadRight(3 ); 
         dwReturn["SSJSACHB"] = " ".PadRight(8 ); 
         dwReturn["SSJRKEY"] = " ".PadRight(50 ); 
         dwReturn["SSJDAT"] = " ".PadRight(0 ); 
         dwReturn["SSJZT"] = " ".PadRight(0 ); 
         dwReturn["SSJNAM"] = " ".PadRight(13 ); 
         dwReturn["SSJIOKZ"] = " ".PadRight(1 ); 
         dwReturn["SSJSTA"] = " ".PadRight(2 ); 
         dwReturn["SSJTDAT01"] = " ".PadRight(0 ); 
         dwReturn["SSJTZT01"] = " ".PadRight(0 ); 
         dwReturn["SSJTINAM01"] = " ".PadRight(13 ); 
         dwReturn["SSJTONAM01"] = " ".PadRight(13 ); 
         dwReturn["SSJTPROG01"] = " ".PadRight(8 ); 
         dwReturn["SSJTASL01"] = " ".PadRight(2 ); 
         dwReturn["SSJTSTA01"] = " ".PadRight(2 ); 
         dwReturn["SSJTOK01"] = " ".PadRight(0 ); 
         dwReturn["SSJTNOK01"] = " ".PadRight(0 ); 
         dwReturn["SSJTMNR01"] = " ".PadRight(4 ); 
         dwReturn["SSJTMPAR101"] = " ".PadRight(15 ); 
         dwReturn["SSJTMPAR201"] = " ".PadRight(10 ); 
         dwReturn["SSJTDAT02"] = " ".PadRight(0 ); 
         dwReturn["SSJTZT02"] = " ".PadRight(0 ); 
         dwReturn["SSJTINAM02"] = " ".PadRight(13 ); 
         dwReturn["SSJTONAM02"] = " ".PadRight(13 ); 
         dwReturn["SSJTPROG02"] = " ".PadRight(8 ); 
         dwReturn["SSJTASL02"] = " ".PadRight(2 ); 
         dwReturn["SSJTSTA02"] = " ".PadRight(2 ); 
         dwReturn["SSJTOK02"] = " ".PadRight(0 ); 
         dwReturn["SSJTNOK02"] = " ".PadRight(0 ); 
         dwReturn["SSJTMNR02"] = " ".PadRight(4 ); 
         dwReturn["SSJTMPAR102"] = " ".PadRight(15 ); 
         dwReturn["SSJTMPAR202"] = " ".PadRight(10 ); 
         dwReturn["SSJTDAT03"] = " ".PadRight(0 ); 
         dwReturn["SSJTZT03"] = " ".PadRight(0 ); 
         dwReturn["SSJTINAM03"] = " ".PadRight(13 ); 
         dwReturn["SSJTONAM03"] = " ".PadRight(13 ); 
         dwReturn["SSJTPROG03"] = " ".PadRight(8 ); 
         dwReturn["SSJTASL03"] = " ".PadRight(2 ); 
         dwReturn["SSJTSTA03"] = " ".PadRight(2 ); 
         dwReturn["SSJTOK03"] = " ".PadRight(0 ); 
         dwReturn["SSJTNOK03"] = " ".PadRight(0 ); 
         dwReturn["SSJTMNR03"] = " ".PadRight(4 ); 
         dwReturn["SSJTMPAR103"] = " ".PadRight(15 ); 
         dwReturn["SSJTMPAR203"] = " ".PadRight(10 ); 
         dwReturn["SSJTDAT04"] = " ".PadRight(0 ); 
         dwReturn["SSJTZT04"] = " ".PadRight(0 ); 
         dwReturn["SSJTINAM04"] = " ".PadRight(13 ); 
         dwReturn["SSJTONAM04"] = " ".PadRight(13 ); 
         dwReturn["SSJTPROG04"] = " ".PadRight(8 ); 
         dwReturn["SSJTASL04"] = " ".PadRight(2 ); 
         dwReturn["SSJTSTA04"] = " ".PadRight(2 ); 
         dwReturn["SSJTOK04"] = " ".PadRight(0 ); 
         dwReturn["SSJTNOK04"] = " ".PadRight(0 ); 
         dwReturn["SSJTMNR04"] = " ".PadRight(4 ); 
         dwReturn["SSJTMPAR104"] = " ".PadRight(15 ); 
         dwReturn["SSJTMPAR204"] = " ".PadRight(10 ); 
         dwReturn["SSJFILLER"] = " ".PadRight(61 ); 
                    #endregion
                    break;
                case "JLT":

                    break;
                default:

                    break;
            }
            if (IsConvert)
            {
                foreach (DataColumn cm in dwInput.Table.Columns)
                {
                    if (dwInput[cm.ColumnName].ToString() == "")
                        continue;
                    if (dwReturn.Table.Columns.Contains(cm.ColumnName))
                    {
                        dwReturn[cm.ColumnName] = dwInput[cm.ColumnName];
                    }
                }
            }
            return dwReturn;
        }
        public void MapSSJOUR(ref DataRow dwLocal, DataRow dwData)
        {
            BlindMap(ref dwLocal, dwData);
        }
        public void SaveSSJOUR(DataRow dwData, string ITXDBVERSION = "50.24")
        {
            DataSet setResult = new DataSet();
            DataTable tbLocal = null;
            DataRow dwLocal = null;
            bool flgExist = false;
            setResult = QuerySSJOUR(dwData);
            if (setResult.Tables.Count > 0)
            {
                tbLocal = setResult.Tables[0];
                if (tbLocal.Rows.Count > 0)
                {
                    flgExist = true;
                    dwLocal = tbLocal.Rows[0];
                }
                else
                {
                    dwLocal = tbLocal.NewRow();
                }
            }
            MapSSJOUR(ref dwLocal, dwData);

            if (!flgExist)
            {

                InsertSSJOUR(dwLocal, ITXDBVERSION);
            }
            UpdateSSJOUR(dwLocal);
        }
        public void InsertSSJOUR(DataRow dwData, string ITXDBVERSION = "50.24")
        {
            OracleCommand or1;
            or1 = OracleDB.CreateCommand();
            switch (ITXDBVERSION)
            {
                case "YGR":
                    or1.CommandText = "INSERT INTO SSJOUR(VAKBMANDANT, VAKBKOLL, VAKBART, VAKBKUNDNR, VAKBFARBE, VAKBKDARTNR, VAKBKDARTBEZ, VAKBKDFARBNR, VAKBANDRUCK, VAKBMEGEW, VAKBMENGEH, VAKBGEWVON, VAKBGEWBIS, VAKBGEWCA, VAKBGEWFKT, VAKBGEWGRP, VAKBMEGFKT, VAKBMEGGRP, VAKBAENDZL, VAKBAENDBEN, VAKBAENDDAT, VAKBNEUBEN, VAKBNEUDAT, VAKBFILLER)"
                        + " VALUES (:VAKBMANDANT, :VAKBKOLL, :VAKBART, :VAKBKUNDNR, :VAKBFARBE, '                         ', '                         ', '                             ', ' ', '   ', '   ', 0, 0, ' ', '000000000000', ' ', '000000000000', ' ', 0, '        ', '000000', '        ', '      ', '                                          ')";
                    or1.Parameters.Add("VAKBMANDANT", OracleType.NVarChar).Value = dwData["VAKBMANDANT"].ToString();
                    or1.Parameters.Add("VAKBKOLL", OracleType.NVarChar).Value = dwData["VAKBKOLL"].ToString();
                    or1.Parameters.Add("VAKBART", OracleType.NVarChar).Value = dwData["VAKBART"].ToString();
                    or1.Parameters.Add("VAKBFARBE", OracleType.NVarChar).Value = dwData["VAKBFARBE"].ToString();
                    or1.Parameters.Add("VAKBKUNDNR", OracleType.NVarChar).Value = dwData["VAKBKUNDNR"].ToString();
                    break;
                //VAFMANDANT VAFKOLL VAFART VAFFARBE VAFBEZ VAFFFARBE

            }
            
            Connect2Proxy(or1);
        }
        public DataSet QuerySSJOUR(DataRow dwData, int option = 1)
        {
            DataSet Return;
            DataSet Result = new DataSet();
            OracleCommand or1 = OracleDB.CreateCommand();
            switch (option)
            {
                case 0:
                    or1.CommandText = "SELECT * FROM SSJOUR WHERE  ROWNUM<2 ";
                    break;
              
                case 99:
                    or1.CommandText = "SELECT * FROM SSJOUR  WHERE ROWNUM<50";
                    break;
                default:
                    break;
            }
            Result = Connect2Proxy(or1);
            if (Result.Tables.Count > 0)
                Result.Tables[0].TableName = "SSJOUR";
            Return = Result;
            return Return;
        }
        public void DeleteSSJOUR(DataRow dwData, int option = 1)
        {

            OracleCommand or1 = OracleDB.CreateCommand();
            switch (option)
            {
                case 1:
                    or1.CommandText = "DELETE FROM SSJOUR   WHERE  VAKBMANDANT=:VAKBMANDANT AND VAKBKOLL=:VAKBKOLL AND VAKBART =:VAKBART AND VAKBFARBE=:VAKBFARBE AND VAKBKUNDNR=:VAKBKUNDNR";
                     or1.Parameters.Add("VAKBMANDANT", OracleType.NVarChar).Value = dwData["VAKBMANDANT"].ToString();
                    or1.Parameters.Add("VAKBKOLL", OracleType.NVarChar).Value = dwData["VAKBKOLL"].ToString();
                    or1.Parameters.Add("VAKBART", OracleType.NVarChar).Value = dwData["VAKBART"].ToString();
                    or1.Parameters.Add("VAKBFARBE", OracleType.NVarChar).Value = dwData["VAKBFARBE"].ToString();
                    or1.Parameters.Add("VAKBKUNDNR", OracleType.NVarChar).Value = dwData["VAKBKUNDNR"].ToString();
                    break;
                default:
                    break;
            }
            Connect2Proxy(or1);
        } 
      
        public void UpdateSSJOUR(DataRow dwData, string ITXDBVERSION = "50.24", int option = 1)
        {
            OracleCommand or1;
            DataSet Result = new DataSet();
            or1 = OracleDB.CreateCommand();
            switch (option)
            {
                case 1:
                    #region====Command==== 
                    or1.CommandText = "UPDATE SSJOUR SET "
                    +"SSJMANDANT= :SSJMANDANT,"
                    +"SSJLFDNR= :SSJLFDNR,"
                    +"SSJKUNDNR= :SSJKUNDNR,"
                    +"SSJLIEFNR= :SSJLIEFNR,"
                    +"SSJTYP= :SSJTYP,"
                    +"SSJSACHB= :SSJSACHB,"
                    +"SSJRKEY= :SSJRKEY,"
                    +"SSJDAT= :SSJDAT,"
                    +"SSJZT= :SSJZT,"
                    +"SSJNAM= :SSJNAM,"
                    +"SSJIOKZ= :SSJIOKZ,"
                    +"SSJSTA= :SSJSTA,"
                    +"SSJTDAT01= :SSJTDAT01,"
                    +"SSJTZT01= :SSJTZT01,"
                    +"SSJTINAM01= :SSJTINAM01,"
                    +"SSJTONAM01= :SSJTONAM01,"
                    +"SSJTPROG01= :SSJTPROG01,"
                    +"SSJTASL01= :SSJTASL01,"
                    +"SSJTSTA01= :SSJTSTA01,"
                    +"SSJTOK01= :SSJTOK01,"
                    +"SSJTNOK01= :SSJTNOK01,"
                    +"SSJTMNR01= :SSJTMNR01,"
                    +"SSJTMPAR101= :SSJTMPAR101,"
                    +"SSJTMPAR201= :SSJTMPAR201,"
                    +"SSJTDAT02= :SSJTDAT02,"
                    +"SSJTZT02= :SSJTZT02,"
                    +"SSJTINAM02= :SSJTINAM02,"
                    +"SSJTONAM02= :SSJTONAM02,"
                    +"SSJTPROG02= :SSJTPROG02,"
                    +"SSJTASL02= :SSJTASL02,"
                    +"SSJTSTA02= :SSJTSTA02,"
                    +"SSJTOK02= :SSJTOK02,"
                    +"SSJTNOK02= :SSJTNOK02,"
                    +"SSJTMNR02= :SSJTMNR02,"
                    +"SSJTMPAR102= :SSJTMPAR102,"
                    +"SSJTMPAR202= :SSJTMPAR202,"
                    +"SSJTDAT03= :SSJTDAT03,"
                    +"SSJTZT03= :SSJTZT03,"
                    +"SSJTINAM03= :SSJTINAM03,"
                    +"SSJTONAM03= :SSJTONAM03,"
                    +"SSJTPROG03= :SSJTPROG03,"
                    +"SSJTASL03= :SSJTASL03,"
                    +"SSJTSTA03= :SSJTSTA03,"
                    +"SSJTOK03= :SSJTOK03,"
                    +"SSJTNOK03= :SSJTNOK03,"
                    +"SSJTMNR03= :SSJTMNR03,"
                    +"SSJTMPAR103= :SSJTMPAR103,"
                    +"SSJTMPAR203= :SSJTMPAR203,"
                    +"SSJTDAT04= :SSJTDAT04,"
                    +"SSJTZT04= :SSJTZT04,"
                    +"SSJTINAM04= :SSJTINAM04,"
                    +"SSJTONAM04= :SSJTONAM04,"
                    +"SSJTPROG04= :SSJTPROG04,"
                    +"SSJTASL04= :SSJTASL04,"
                    +"SSJTSTA04= :SSJTSTA04,"
                    +"SSJTOK04= :SSJTOK04,"
                    +"SSJTNOK04= :SSJTNOK04,"
                    +"SSJTMNR04= :SSJTMNR04,"
                    +"SSJTMPAR104= :SSJTMPAR104,"
                    +"SSJTMPAR204= :SSJTMPAR204,"
                    +"SSJFILLER= :SSJFILLER,"
                        + " WHERE  "
                        + "  VAKBMANDANT=:VAKBMANDANT AND VAKBKOLL=:VAKBKOLL AND VAKBART =:VAKBART AND VAKBFARBE=:VAKBFARBE AND VAKBKUNDNR=:VAKBKUNDNR";
                    #endregion

                    #region====Parameters====
          or1.Parameters.Add("SSJMANDANT", OracleType.NVarChar).Value = dwData["SSJMANDANT"].ToString(); 
          or1.Parameters.Add("SSJLFDNR", OracleType.NVarChar).Value = dwData["SSJLFDNR"].ToString(); 
          or1.Parameters.Add("SSJKUNDNR", OracleType.NVarChar).Value = dwData["SSJKUNDNR"].ToString(); 
          or1.Parameters.Add("SSJLIEFNR", OracleType.NVarChar).Value = dwData["SSJLIEFNR"].ToString(); 
          or1.Parameters.Add("SSJTYP", OracleType.NVarChar).Value = dwData["SSJTYP"].ToString(); 
          or1.Parameters.Add("SSJSACHB", OracleType.NVarChar).Value = dwData["SSJSACHB"].ToString(); 
          or1.Parameters.Add("SSJRKEY", OracleType.NVarChar).Value = dwData["SSJRKEY"].ToString(); 
          or1.Parameters.Add("SSJDAT", OracleType.NVarChar).Value = dwData["SSJDAT"].ToString(); 
          or1.Parameters.Add("SSJZT", OracleType.NVarChar).Value = dwData["SSJZT"].ToString(); 
          or1.Parameters.Add("SSJNAM", OracleType.NVarChar).Value = dwData["SSJNAM"].ToString(); 
          or1.Parameters.Add("SSJIOKZ", OracleType.NVarChar).Value = dwData["SSJIOKZ"].ToString(); 
          or1.Parameters.Add("SSJSTA", OracleType.NVarChar).Value = dwData["SSJSTA"].ToString(); 
          or1.Parameters.Add("SSJTDAT01", OracleType.NVarChar).Value = dwData["SSJTDAT01"].ToString(); 
          or1.Parameters.Add("SSJTZT01", OracleType.NVarChar).Value = dwData["SSJTZT01"].ToString(); 
          or1.Parameters.Add("SSJTINAM01", OracleType.NVarChar).Value = dwData["SSJTINAM01"].ToString(); 
          or1.Parameters.Add("SSJTONAM01", OracleType.NVarChar).Value = dwData["SSJTONAM01"].ToString(); 
          or1.Parameters.Add("SSJTPROG01", OracleType.NVarChar).Value = dwData["SSJTPROG01"].ToString(); 
          or1.Parameters.Add("SSJTASL01", OracleType.NVarChar).Value = dwData["SSJTASL01"].ToString(); 
          or1.Parameters.Add("SSJTSTA01", OracleType.NVarChar).Value = dwData["SSJTSTA01"].ToString(); 
          or1.Parameters.Add("SSJTOK01", OracleType.NVarChar).Value = dwData["SSJTOK01"].ToString(); 
          or1.Parameters.Add("SSJTNOK01", OracleType.NVarChar).Value = dwData["SSJTNOK01"].ToString(); 
          or1.Parameters.Add("SSJTMNR01", OracleType.NVarChar).Value = dwData["SSJTMNR01"].ToString(); 
          or1.Parameters.Add("SSJTMPAR101", OracleType.NVarChar).Value = dwData["SSJTMPAR101"].ToString(); 
          or1.Parameters.Add("SSJTMPAR201", OracleType.NVarChar).Value = dwData["SSJTMPAR201"].ToString(); 
          or1.Parameters.Add("SSJTDAT02", OracleType.NVarChar).Value = dwData["SSJTDAT02"].ToString(); 
          or1.Parameters.Add("SSJTZT02", OracleType.NVarChar).Value = dwData["SSJTZT02"].ToString(); 
          or1.Parameters.Add("SSJTINAM02", OracleType.NVarChar).Value = dwData["SSJTINAM02"].ToString(); 
          or1.Parameters.Add("SSJTONAM02", OracleType.NVarChar).Value = dwData["SSJTONAM02"].ToString(); 
          or1.Parameters.Add("SSJTPROG02", OracleType.NVarChar).Value = dwData["SSJTPROG02"].ToString(); 
          or1.Parameters.Add("SSJTASL02", OracleType.NVarChar).Value = dwData["SSJTASL02"].ToString(); 
          or1.Parameters.Add("SSJTSTA02", OracleType.NVarChar).Value = dwData["SSJTSTA02"].ToString(); 
          or1.Parameters.Add("SSJTOK02", OracleType.NVarChar).Value = dwData["SSJTOK02"].ToString(); 
          or1.Parameters.Add("SSJTNOK02", OracleType.NVarChar).Value = dwData["SSJTNOK02"].ToString(); 
          or1.Parameters.Add("SSJTMNR02", OracleType.NVarChar).Value = dwData["SSJTMNR02"].ToString(); 
          or1.Parameters.Add("SSJTMPAR102", OracleType.NVarChar).Value = dwData["SSJTMPAR102"].ToString(); 
          or1.Parameters.Add("SSJTMPAR202", OracleType.NVarChar).Value = dwData["SSJTMPAR202"].ToString(); 
          or1.Parameters.Add("SSJTDAT03", OracleType.NVarChar).Value = dwData["SSJTDAT03"].ToString(); 
          or1.Parameters.Add("SSJTZT03", OracleType.NVarChar).Value = dwData["SSJTZT03"].ToString(); 
          or1.Parameters.Add("SSJTINAM03", OracleType.NVarChar).Value = dwData["SSJTINAM03"].ToString(); 
          or1.Parameters.Add("SSJTONAM03", OracleType.NVarChar).Value = dwData["SSJTONAM03"].ToString(); 
          or1.Parameters.Add("SSJTPROG03", OracleType.NVarChar).Value = dwData["SSJTPROG03"].ToString(); 
          or1.Parameters.Add("SSJTASL03", OracleType.NVarChar).Value = dwData["SSJTASL03"].ToString(); 
          or1.Parameters.Add("SSJTSTA03", OracleType.NVarChar).Value = dwData["SSJTSTA03"].ToString(); 
          or1.Parameters.Add("SSJTOK03", OracleType.NVarChar).Value = dwData["SSJTOK03"].ToString(); 
          or1.Parameters.Add("SSJTNOK03", OracleType.NVarChar).Value = dwData["SSJTNOK03"].ToString(); 
          or1.Parameters.Add("SSJTMNR03", OracleType.NVarChar).Value = dwData["SSJTMNR03"].ToString(); 
          or1.Parameters.Add("SSJTMPAR103", OracleType.NVarChar).Value = dwData["SSJTMPAR103"].ToString(); 
          or1.Parameters.Add("SSJTMPAR203", OracleType.NVarChar).Value = dwData["SSJTMPAR203"].ToString(); 
          or1.Parameters.Add("SSJTDAT04", OracleType.NVarChar).Value = dwData["SSJTDAT04"].ToString(); 
          or1.Parameters.Add("SSJTZT04", OracleType.NVarChar).Value = dwData["SSJTZT04"].ToString(); 
          or1.Parameters.Add("SSJTINAM04", OracleType.NVarChar).Value = dwData["SSJTINAM04"].ToString(); 
          or1.Parameters.Add("SSJTONAM04", OracleType.NVarChar).Value = dwData["SSJTONAM04"].ToString(); 
          or1.Parameters.Add("SSJTPROG04", OracleType.NVarChar).Value = dwData["SSJTPROG04"].ToString(); 
          or1.Parameters.Add("SSJTASL04", OracleType.NVarChar).Value = dwData["SSJTASL04"].ToString(); 
          or1.Parameters.Add("SSJTSTA04", OracleType.NVarChar).Value = dwData["SSJTSTA04"].ToString(); 
          or1.Parameters.Add("SSJTOK04", OracleType.NVarChar).Value = dwData["SSJTOK04"].ToString(); 
          or1.Parameters.Add("SSJTNOK04", OracleType.NVarChar).Value = dwData["SSJTNOK04"].ToString(); 
          or1.Parameters.Add("SSJTMNR04", OracleType.NVarChar).Value = dwData["SSJTMNR04"].ToString(); 
          or1.Parameters.Add("SSJTMPAR104", OracleType.NVarChar).Value = dwData["SSJTMPAR104"].ToString(); 
          or1.Parameters.Add("SSJTMPAR204", OracleType.NVarChar).Value = dwData["SSJTMPAR204"].ToString(); 
          or1.Parameters.Add("SSJFILLER", OracleType.NVarChar).Value = dwData["SSJFILLER"].ToString(); 
                    #endregion
                    break; 
                default:
                    break;
            }


            Connect2Proxy(or1);
        }
    }
}
